package Year22_Month06.day25;

public class 将有序数组转为二叉搜索树 {
    public TreeNode sortedArrayToBST(int[] nums) {
        if(nums.length == 0) return null;
        return solve(nums,0, nums.length);
    }
    //其实不是很复杂，因为和构建普通的二叉树没有啥区别，因为它的取值是很固定的，一直是从中间取的。
    public TreeNode solve(int[] nums,int left,int right){
        //如果说left > right就直接返回一个null节点就行
        if(left >= right) return null;
        int mid = left + (right - left) / 2;
        TreeNode root = new TreeNode(nums[mid]);
        root.left = solve(nums,left,mid);
        root.right = solve(nums,mid + 1,right);
        return root;
    }
}
